Skip to content

Release tooling supports sequential release candidates - #23

Merged
nodeselector merged 3 commits into
mainfrom
nodeselector-document-lockfile-releases
Jul 31, 2026
Merged

Release tooling supports sequential release candidates#23
nodeselector merged 3 commits into
mainfrom
nodeselector-document-lockfile-releases

Conversation

@nodeselector

Copy link
Copy Markdown
Collaborator

What

Add safe local release tooling for stable and sequential release-candidate tags.

Why

Maintainers need to publish release candidates without changing how the next stable version is selected or allowing CI to mint release tags.

How

  • script/release <patch|minor|major> --rc selects or increments go/vX.Y.Z-rc.N from the latest stable tag.
  • Omitting --rc promotes that base to the stable go/vX.Y.Z tag.
  • The local script requires a clean, current main, runs repository validation, pushes an annotated tag, and verifies the remote tag.
  • The tag workflow verifies stable and RC tags, marks RC GitHub Releases as prereleases, and warms the Go module proxy.
  • A shell test sources the real release script and covers stable, first-RC, sequential-RC, and stable-promotion selection.

Risk

Aspect Assessment
Blast radius Maintainer release operations and go/v* tag publishing
Reversibility Easy: revert the tooling before cutting another release
Rollback plan Revert this PR; existing tags and releases remain unchanged

Testing

  • script/release_test --current go/v0.0.5-rc.1 patch
  • shellcheck script/release script/release_test
  • bash -n script/release script/release_test
  • Workflow YAML parse
  • gh actions-lock --verify-local --no-interactive
  • make generate
  • make lint
  • make test
  • git diff --check

Copilot AI review requested due to automatic review settings July 31, 2026 16:15
@nodeselector
nodeselector requested a review from a team as a code owner July 31, 2026 16:15

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds local tooling for stable and sequential release-candidate tags.

Changes:

  • Adds RC-aware release tag selection and tests.
  • Moves publishing to a tag-triggered workflow.
  • Updates release documentation and locked actions.
Show a summary per file
File Description
script/release Implements safe local tag creation and RC sequencing.
script/release_test Tests release-tag selection.
RELEASING.md Documents the new release process.
Makefile Runs release script tests.
.github/workflows/release.yml Publishes releases from tags.
.github/workflows/actions.lock Updates locked workflow dependencies.

Review details

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 5/6 changed files
  • Comments generated: 1
  • Review effort level: Balanced

Comment thread .github/workflows/release.yml Outdated
@nodeselector
nodeselector merged commit 1875dce into main Jul 31, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants